return {
	'nvim-telescope/telescope.nvim',
	tag = '0.1.8',
	dependencies = {
		'nvim-lua/plenary.nvim',
		{ 'nvim-telescope/telescope-fzf-native.nvim', build = 'make' },
	},
	config = function()
		local map_tele = function(key, cmd)
			vim.api.nvim_set_keymap(
				'n',
				'<leader>f' .. key,
				'<cmd> Telescope ' .. cmd .. '<CR>',
				{
					noremap = true,
					silent = true,
				})
		end

		require('telescope').setup {
			pickers = {
				find_files = {
					hidden = true,
					find_command = {
						"rg",
						"--files",
						"--hidden",
						"--glob=!**/.git/*",
						"--glob=!**/node_modules/*",
						"--glob=!**/.idea/*",
						"--glob=!**/.vscode/*",
						"--glob=!**/build/*",
						"--glob=!**/dist/*",
						"--glob=!**/yarn.lock",
						"--glob=!**/package-lock.json",
					},
				}
			}
		};

		map_tele("<CR>", '');
		map_tele('F', 'find_files');
		map_tele('f', 'git_files');
		map_tele('g', 'live_grep');
		map_tele('/', 'current_buffer_fuzzy_find');
		map_tele('b', 'buffers');
		map_tele('h', 'help_tags');
		map_tele('s', 'lsp_document_symbols');
		map_tele('S', 'lsp_workspace_symbols');
		map_tele('i', 'lsp_implementations');
		map_tele('t', 'lsp_type_definitions');
		vim.keymap.set('n', '<leader>fc', function()
			require("telescope.builtin").find_files {
				cwd = vim.fn.stdpath("config")
			}
		end);

		require('telescope').load_extension('fzf');
	end,
}
